package Reeks5.VanRansbeeck.Kevin.Model.States.Game;

import Reeks5.VanRansbeeck.Kevin.Model.Spel;
import java.util.Observable;

public class SpelStateContext extends Observable {
    private Spel spel;
    
    private PokerSpelState spelState;
    
    public SpelStateContext(Spel spel) {
        this.setSpel(spel);
        this.setSpelState(new NewState());
    }

    public PokerSpelState getSpelState() {
        return spelState;
    }

    public void setSpelState(PokerSpelState spelState) {
        this.spelState = spelState;
        this.setChanged();
        this.notifyObservers();
    }

    public Spel getSpel() {
        return spel;
    }

    private void setSpel(Spel spel) {
        this.spel = spel;
    }
    
    public void preflop() {
        this.getSpelState().blinds(this);
    }
    public void blinds() {
        this.getSpelState().blinds(this);
    }
    public void flop() {
        this.getSpelState().flop(this);
    }
    public void turn() {
        this.getSpelState().turn(this);
    }
    public void river() {
        this.getSpelState().river(this);
    }
    public void showdown() {
        this.getSpelState().showdown(this);
    }
    public void winner() {
        this.getSpelState().winner(this);
    }
    public void reset() {
        this.getSpelState().reset(this);
    }
    
    @Override
    public String toString() {
        return this.getSpelState().getStatus();
    }
}